package birdsong.filter;

import birdsong.comm.ServerComm;
import birdsong.comm.ServerSideMessage;

public abstract class ServerCommDecorator implements ServerComm{

	protected ServerComm _serverDecorated;
	
	
	public ServerCommDecorator(ServerComm concreteServer){
		this._serverDecorated = concreteServer;
	}
	
	@Override
	public void start() {
		_serverDecorated.start();
	}

	@Override
	public ServerSideMessage getNextMessage() {
		return _serverDecorated.getNextMessage();
	}

	@Override
	public boolean hasNextMessage() {
		return _serverDecorated.hasNextMessage();
	}

	@Override
	public void sendBirdsongMessage(String fromNicename, String toNickname,
			String birdsongMessage) {
		_serverDecorated.sendBirdsongMessage(fromNicename, toNickname, birdsongMessage);
	}

	@Override
	public void sendNewFollower(String toNickname, String newFollower) {
		_serverDecorated.sendNewFollower(toNickname, newFollower);
	}

	@Override
	public void sendNewUnfollow(String toNickname, String unfollower) {
		_serverDecorated.sendNewUnfollow(toNickname, unfollower);
	}

	@Override
	public void sendError(String toNickname, String error) {
		_serverDecorated.sendError(toNickname, error);
	}

	@Override
	public void sendClientConnected(String toNickname, String connectedNickname) {
		_serverDecorated.sendClientConnected(toNickname, connectedNickname);
	}

	@Override
	public void sendClientDisconnected(String toNickname,
			String disconnectedNickname) {
		_serverDecorated.sendClientDisconnected(toNickname, disconnectedNickname);
	}

	@Override
	public boolean clientIsConnected(String nickname) {
		return _serverDecorated.clientIsConnected(nickname);
	}

	@Override
	public void disconnectClient(String nickname) {
		_serverDecorated.disconnectClient(nickname);
	}

}
